const Gettext = imports.gettext;
const GLib = imports.gi.GLib;
const Gtk = imports.gi.Gtk;
+const Lang = imports.lang;
const Shell = imports.gi.Shell;
const St = imports.gi.St;
};
}
+function _patchLayoutClass(layoutClass, styleProps) {
+ if (styleProps)
+ layoutClass.prototype.hookup_style = function(container) {
+ container.connect('style-changed', Lang.bind(this, function() {
+ let node = container.get_theme_node();
+ for (let prop in styleProps)
+ this[prop] = node.get_length(styleProps[prop]);
+ }));
+ };
+ layoutClass.prototype.child_set = function(actor, props) {
+ let meta = this.get_child_meta(actor.get_parent(), actor);
+ for (let prop in props)
+ meta[prop] = props[prop];
+ };
+}
+
function _makeLoggingFunc(func) {
return function() {
return func([].join.call(arguments, ', '));
_patchContainerClass(St.BoxLayout);
_patchContainerClass(St.Table);
+ _patchLayoutClass(Clutter.TableLayout, { row_spacing: 'spacing-rows',
+ column_spacing: 'spacing-columns' });
+ _patchLayoutClass(Clutter.GridLayout, { row_spacing: 'spacing-rows',
+ column_spacing: 'spacing-columns' });
+ _patchLayoutClass(Clutter.BoxLayout, { spacing: 'spacing' });
+
Clutter.Actor.prototype.toString = function() {
return St.describe_actor(this);
};